.TH "PAPI_read" 3 "Thu Dec 14 2023" "Version 7.1.0.0" "PAPI" \" -*- nroff -*-
.ad l
.nh
.SH NAME
PAPI_read \- Read hardware counters from an event set\&.  

.SH SYNOPSIS
.br
.PP
.SH "Detailed Description"
.PP 

.PP
\fBC Interface:\fP
.RS 4
#include <\fBpapi\&.h\fP> 
.br
 int \fBPAPI_read(int  EventSet, long_long * values )\fP;
.RE
.PP
\fBPAPI_read()\fP copies the counters of the indicated event set into the provided array\&.
.PP
The counters continue counting after the read\&.
.PP
Note the differences between \fBPAPI_read()\fP and \fBPAPI_accum()\fP, specifically that \fBPAPI_accum()\fP resets the values array to zero\&.
.PP
\fBPAPI_read()\fP assumes an initialized PAPI library and a properly added event set\&.
.PP
\fBParameters\fP
.RS 4
\fIEventSet\fP -- an integer handle for a PAPI Event Set as created by \fBPAPI_create_eventset()\fP 
.br
\fI*values\fP -- an array to hold the counter values of the counting events
.RE
.PP
\fBReturn values\fP
.RS 4
\fIPAPI_EINVAL\fP One or more of the arguments is invalid\&. 
.br
\fIPAPI_ESYS\fP A system or C library call failed inside PAPI, see the errno variable\&. 
.br
\fIPAPI_ENOEVST\fP The event set specified does not exist\&.
.RE
.PP
\fBExamples\fP
.RS 4

.PP
.nf
do_100events();
if (PAPI_read(EventSet, values) != PAPI_OK)
   handle_error(1);
// values[0] now equals 100
do_100events();
if (PAPI_accum(EventSet, values) != PAPI_OK)
   handle_error(1);
// values[0] now equals 300
values[0] = \-100;
do_100events();
if (PAPI_accum(EventSet, values) != PAPI_OK)
    handle_error(1);
// values[0] now equals 0 

.fi
.PP
.RE
.PP
\fBSee also\fP
.RS 4
\fBPAPI_accum\fP 
.PP
\fBPAPI_start\fP 
.PP
\fBPAPI_stop\fP 
.PP
\fBPAPI_reset\fP 
.RE
.PP


.SH "Author"
.PP 
Generated automatically by Doxygen for PAPI from the source code\&.
